home *** CD-ROM | disk | FTP | other *** search
- 10 rem ==========================
- 20 rem linked list showoff
- 30 rem rupert report #46
- 40 rem ==========================
- 50 num=50 :rem number of odd integers
- 60 dim nfo(2*num),lnk(2*num),a(2*num)
- 70 rem - create linked list of 50 odd
- 80 rem integers from 1 to 99
- 90 t0=ti
- 100 print"[147]working on linked list ..."
- 110 for k=1 to num
- 120 lnk(k)=k+1 : nfo(k)=2*k-1 : next
- 130 lnk(k-1)=-1 :rem last link
- 140 rem
- 150 rem - insert even integers n into
- 160 rem list with subscripts 51-100
- 170 nxt=num+1 : prev=1 : n=2
- 180 oldlnk=lnk(prev) : lnk(prev)=nxt
- 190 nfo(nxt)=n : lnk(nxt)=oldlnk
- 200 prev=prev+1 : n=n+2
- 210 nxt=nxt+1:if lnk(nxt-1)<>-1 then 180
- 220 rem
- 230 rem - delete odd integers from list
- 240 rem they have subscripts 1-50
- 250 first=lnk(1) :rem move first pointer
- 260 k=first : lnk(1)=-1
- 270 oldlnk=lnk(k) : lnk(k)=lnk(oldlnk)
- 280 lnk(oldlnk)=-1
- 290 k=k+1 : if lnk(k)<>-1 then 270
- 300 rem
- 310 rem - print linked list
- 320 k=first
- 330 print nfo(k);
- 340 k=k+1 : if lnk(k-1)<>-1 then 330
- 350 tl=(ti-t0)/60 : print
- 360 print "linked list took "tl"seconds"
- 370 rem ============================
- 380 rem - create array of 50 odd
- 390 rem integers from 1 to 99
- 400 t0=ti
- 410 print : print"working on array ..."
- 420 for k=1 to num
- 430 a(k)=2*k-1 : next
- 440 rem
- 450 rem -insert even integers n with
- 460 rem subscripts 2-100 by 2's
- 470 p=2 :rem pointer to next element
- 480 rem - move all items up
- 490 for k=num+1 to p+1 step -1
- 500 a(k)=a(k-1) : next
- 510 rem - insert new integer
- 520 a(p)=p : p=p+2 :if p<=2*num then 490
- 530 rem - delete odd integers
- 540 p=1 : last=num*2
- 550 rem - move all items down
- 560 for k=p to last-1
- 570 a(k)=a(k+1) : next
- 580 last=last-1 : p=p+1
- 590 if last>=num then 560
- 600 rem - print array
- 610 rem
- 620 for k=1 to num
- 630 print a(k); : next
- 640 ta=(ti-t0)/60 : print
- 650 print "array took " ta "seconds"
-